package com.xian.tszs.meal.business;

import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;

import com.xian.tszs.meal.entity.TsAdmin;
import com.xian.tszs.meal.server.WebSocketServer;
import com.xian.tszs.meal.utils.SpringUploadUtil;

/***
 * 
 * @Title: BsLoginController.java
 * @Package com.xian.tszs.meal.business
 * @Description: 商家登录控制器
 * @author MRC
 * @date 2019年5月13日 下午4:27:46
 * @version V1.0
 */
@Controller
public class BsLoginController {

	@Autowired
	private SpringUploadUtil uploadUtil;

	/**
	 * 跳转至商家登录
	 * 
	 * @author: MRC
	 * @date 2019年5月13日 下午4:32:10
	 * @return String 返回类型
	 */
	@GetMapping("login")
	public String toLogin() {

		return "login";
	}

	/**
	 * 跳转至主页面
	 * 
	 * @author: MRC
	 * @date 2019年5月13日 下午5:00:10
	 * @return String 返回类型
	 */
	@GetMapping(path = {"index",""})
	public String toIndex(@AuthenticationPrincipal TsAdmin loginedUser,Model model) {
		model.addAttribute("business", loginedUser.getId());
		return "index";
	}
	/**
	 * 跳转至欢迎页面
	 * 
	 * @author: MRC
	 * @date 2019年5月20日 下午3:00:20
	 * @return String 返回类型
	 */
	@GetMapping("welcome")
	public String toWelcome() {
		return "welcome";
	}

	/***
	 * 文件上传接口
	 * 
	 * @author: MRC
	 * @date 2019年5月20日 下午5:02:52
	 * @return String 返回类型
	 */
	@PostMapping("fileUpload")
	@ResponseBody
	public Map<String, Object> fileUpload(HttpServletRequest request) {

		Map<String, Object> map = new HashMap<String, Object>();

		List<MultipartFile> list = ((MultipartHttpServletRequest) request).getFiles("file");

		map.put("success", false);

		String paths = null;

		if (list.size() > 0) {
			paths = uploadUtil.uploadPics(list);
			map.put("success", true);
		}
		map.put("path", paths);
		return map;
	}

	// 推送数据接口
	@ResponseBody
	@RequestMapping("/socket/push/{cid}")
	public Object pushToWeb(@PathVariable String cid, String message) {
		try {
			WebSocketServer.sendInfo(message, cid);
		} catch (IOException e) {
			e.printStackTrace();
		}
		return "";
	}

}
